package com.yuanqi.service;

import com.yuanqi.domain.User;
import java.util.Map;

public interface UserService {
    
    /**
     * 根据ID获取用户信息
     */
    User getUserById(Long id);
    
    /**
     * 根据用户名获取用户信息
     */
    User getUserByUsername(String username);
    
    /**
     * 更新用户个人信息
     */
    User updateUserProfile(Long userId, Map<String, Object> profileData);
    
    /**
     * 修改用户密码
     */
    boolean changePassword(Long userId, String oldPassword, String newPassword);
    
    /**
     * 验证用户密码
     */
    boolean verifyPassword(Long userId, String password);
    
    /**
     * 更新用户头像
     */
    User updateAvatar(Long userId, String avatarUrl);
    
    /**
     * 检查用户名是否可用
     */
    boolean isUsernameAvailable(String username, Long excludeUserId);
    
    /**
     * 检查邮箱是否可用
     */
    boolean isEmailAvailable(String email, Long excludeUserId);
    
    /**
     * 检查手机号是否可用
     */
    boolean isMobileAvailable(String mobile, Long excludeUserId);
}
